home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xa / DeclModelExtra.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  3.7 KB  |  109 lines

  1. package com.extensibility.xa;
  2.  
  3. import com.extensibility.xml.BaseDeclaration;
  4. import com.extensibility.xml.ExtraMetaDataUIIntf;
  5. import com.extensibility.xml.ParserException;
  6. import com.extensibility.xml.XMLStringUtilities;
  7. import com.extensibility.xml.dt.DataTypeIntf;
  8.  
  9. public abstract class DeclModelExtra extends DeclTableModel {
  10.    ExtraMetaDataUIIntf extraUI;
  11.  
  12.    public DeclModelExtra(SchemaDoc var1, Class var2) {
  13.       super(var1, var2);
  14.       this.resetExtraMetaDataUI();
  15.    }
  16.  
  17.    public DeclModelExtra(SchemaDoc var1, Class var2, Class var3) {
  18.       super(var1, var2, var3);
  19.       this.resetExtraMetaDataUI();
  20.    }
  21.  
  22.    ExtraMetaDataUIIntf getExtraUI() {
  23.       return this.extraUI;
  24.    }
  25.  
  26.    void resetExtraMetaDataUI() {
  27.       this.extraUI = ((DeclTableModel)this).getSchemaDoc().getExtraMetaDataUI();
  28.    }
  29.  
  30.    final boolean isExtraCol(int var1) {
  31.       return var1 >= this.getBaseColumnCount();
  32.    }
  33.  
  34.    protected abstract int getBaseColumnCount();
  35.  
  36.    public int getExtraColumnCount() {
  37.       return this.extraUI != null ? this.extraUI.getExtraColumnCount(this.getMetaSelector()) : 0;
  38.    }
  39.  
  40.    int getExtraColIndex(int var1) {
  41.       return var1 - this.getBaseColumnCount();
  42.    }
  43.  
  44.    public int getMetaSelector() {
  45.       return -1;
  46.    }
  47.  
  48.    public String getColumnName(int var1) {
  49.       return this.isExtraCol(var1) ? this.extraUI.getColumnName(this.getMetaSelector(), this.getExtraColIndex(var1)) : super.getColumnName(var1);
  50.    }
  51.  
  52.    public Class getColumnClass(int var1) {
  53.       return this.isExtraCol(var1) ? this.extraUI.getColumnClass(this.getMetaSelector(), this.getExtraColIndex(var1)) : super.getColumnClass(var1);
  54.    }
  55.  
  56.    public boolean isCellEditable(int var1, int var2) {
  57.       return this.isExtraCol(var2) && !((DeclTableModel)this).isNewRow(var1) ? true : super.isCellEditable(var1, var2);
  58.    }
  59.  
  60.    public Object getValueAt(int var1, int var2) {
  61.       return this.isExtraCol(var2) && !((DeclTableModel)this).isNewRow(var1) ? ((DeclTableModel)this).getDeclaration(var1).getMetaPropAsString(this.extraUI.getColumnMetaProp(this.getMetaSelector(), this.getExtraColIndex(var2))) : super.getValueAt(var1, var2);
  62.    }
  63.  
  64.    ParserException validateCell(String var1, int var2, int var3) {
  65.       if (this.isExtraCol(var3)) {
  66.          if (this.extraUI.isColumnMetaPropAttrs(this.getMetaSelector(), this.getExtraColIndex(var3))) {
  67.             try {
  68.                XMLStringUtilities.getNameValuePairs(var1);
  69.             } catch (StringIndexOutOfBoundsException var6) {
  70.                ParserException var5 = new ParserException(97, "");
  71.                return var5;
  72.             }
  73.          }
  74.  
  75.          if (var1 != null && var1.length() != 0) {
  76.             DataTypeIntf var4 = this.extraUI.getDataType(this.getMetaSelector(), this.getExtraColIndex(var3));
  77.             return !((DeclTableModel)this).getSchemaDoc().getSchema().isValidValue(var4, var1) ? new ParserException(999, String.valueOf(String.valueOf("Value is not valid in '").concat(String.valueOf(this.getColumnName(var3)))).concat(String.valueOf("' column."))) : null;
  78.          } else {
  79.             return null;
  80.          }
  81.       } else {
  82.          return super.validateCell(var1, var2, var3);
  83.       }
  84.    }
  85.  
  86.    public void setValueAt(Object var1, int var2, int var3) {
  87.       if (this.isExtraCol(var3)) {
  88.          String var4 = (String)var1;
  89.          BaseDeclaration var5 = ((DeclTableModel)this).getDeclaration(var2);
  90.          if (var4 != null && var4.length() != 0) {
  91.             if (this.extraUI.isColumnMetaPropList(this.getMetaSelector(), this.getExtraColIndex(var3))) {
  92.                var5.putMetaPropList(this.extraUI.getColumnMetaProp(this.getMetaSelector(), this.getExtraColIndex(var3)), var4);
  93.             } else if (this.extraUI.isColumnMetaPropAttrs(this.getMetaSelector(), this.getExtraColIndex(var3))) {
  94.                var5.putMetaPropAttrs(this.extraUI.getColumnMetaProp(this.getMetaSelector(), this.getExtraColIndex(var3)), XMLStringUtilities.getNameValuePairs(var4));
  95.             } else {
  96.                var5.putMetaProp(this.extraUI.getColumnMetaProp(this.getMetaSelector(), this.getExtraColIndex(var3)), var4);
  97.             }
  98.          } else {
  99.             var5.removeMetaProp(this.extraUI.getColumnMetaProp(this.getMetaSelector(), this.getExtraColIndex(var3)));
  100.          }
  101.  
  102.          ((DeclTableModel)this).getSchemaDoc().touch(var5);
  103.       } else {
  104.          super.setValueAt(var1, var2, var3);
  105.       }
  106.  
  107.    }
  108. }
  109.